Skip to content
This repository has been archived by the owner on Apr 11, 2024. It is now read-only.

refactor: standardize the code for getting Helm values #50

Closed
wants to merge 95 commits into from

Conversation

dkoshkin
Copy link
Collaborator

I noticed there were 3 copies of retrieveValuesTemplateConfigMap() in addition to the one generic one in lifecycleutils, refactored all of these methods to reuse the existing function.

While refactoring I saw that for NFD the handler was adding a value, moved the templating to the helm values. This copies the pattern in other addons, but also makes it easier to override at cluster creation time (kind of as a last resort if there is a bug in the handler code)

I also added RetrieveValuesTemplate to get the data instead of having valuesTemplateConfigMap.Data["values.yaml"] in every handler.

jimmidyson and others added 30 commits March 21, 2024 12:30
Missed when reorganising example kustomizations in previous PR.
- Defines a cluster-level variable for defining one or more users
- Patches bootstrap templates for control plane and worker node pools
  with user configuration
Co-authored-by: Faiq <faiq.raza@nutanix.com>
Signed-off-by: Deepak Muley <deepak.muley@nutanix.com>
Without this, defaults declared in the JSON schema are not included in validation
steps, which can lead to invalid failures, while also not allowing for tests that
target defaults.
Fix typo in lockPassword logic, and add unit test
feat: Add examples for Nutanix provider
Add unit test for empty hashed password
Change Sudo field from pointer to value

The zero value (empty string) is not valid, so the field does not need
to be a pointer.
Explain why we do not validate hashed password input
Explain why we do not validate sudo input
Also deploy infra provider versions that match the API.
CPI is a term unique to the vSphere CCM.
Renaming to the more generic "CCM".
dkoshkin and others added 23 commits April 4, 2024 11:36
* refactor: use a string type for Nutanix's AdditionalTrustBundle

Use a string instead of a ConfigMap reference
to make it easier for both the handlers to use, and the clients to set in the API.

* fix: force insecure: false with additionalTrustBundle
* test: unit test for individual patch generator

* test: package level unit test for HTTPProxy

* test: fix data race between multiple unit test that use envtest

* test: make patchgenerator generic function

* fix: linting errors after rebase from main
* test: unit test for individual patch generator

* test: package level unit test for HTTPProxy

* test: move region and httpproxy patch generator unit test invocation

* fix: linting errors

* test: move all AWS patch unit tests to their own packages (#24)

* test: move instanceprofile tests to its own package

* test: move instancetype unit tests to its own package

* test: move ami unit tests to its own package

* test: move aws network tests to its own package

* test: move controlplaneloadbalancer unit tests to its own package

* test: move aws cni unit tests to its own package

* test: fix linting errors

* test: unit tests for AWS security groups

* test: move customimage unit tests to their own package (#30)

* test:  move all Nutanix patch handler unit tests (#32)

* test: move controlplane endpoint unit tests

* test: move PC endpoint unit tests

* test: nove machinedetails unit tests

* test: move generic patch unit tests to own packages (#31)

* test: move audit policy tests to their own package

* test: move etcd unit tests to their own package

* test: move extra api server cert sans to its own package

* test: move image registry unit tests to its own package

* test: move kubernetes image repository unit tests

* test: move mirror unit tests

* test: move users unit tests

* test: remove gereric unit tests from nutanix meta patch handler

* test: cleaned up meta level unit test suites
* feat: Make containerd restart its own patch

* fix: unit tests for kubeadmconfigtemplate with containerdrestart patch

* fix: add comment for always add containerd patch

* test: move unit test to their own package

---------

Co-authored-by: Shalin Patel <shalin.patel@nutanix.com>
Using a cross-namespace objectRef in the cluster API
can lead to privilege escalation.
A user with RBAC to read Secrets in one namespace can create a cluster,
and copy any Secret from any other namespace to their workload cluster.
* refactor: combine PC host and port into a single url var

This makes it simpler for clients to provide a single input field
and not have to do any parsing to split the hostname and port.
It also allows us to use API validation for bad input.

* fixup! refactor: combine PC host and port into a single url var

* fixup! refactor: combine PC host and port into a single url var

* fixup! refactor: combine PC host and port into a single url var
The existing code created a ClusterResourceSet with the user provided Secret.
However, that won't work unless that Secret has an embedded Secret in it.
* ci: adds tooling to create configmap

* feat: use a configmap to get helmchart info

* fix: precommit issues

* fix: typo in cilium

* fix: remove workspace files

* build: template name for configmap

* refactor: names for helm chart info getter

* refactor: use nutanix-storage name instead of nutnaix-csi

* refactor: move to globaloptions

* fix: adds snapshot to helm config

* fix: comments after review

* fix: adds a warning and removes ebs csi

* fix: typo

* fix: adds missing script file

* fix: precommit
* feat: Add patch to configure containerd metrics
This makes the deployment consistent as well as avoiding issues when providers
are in the middle of a release.
* build: remove nutanix CCM from examples

* build: add scripts to sync Nutanix CCM manifests

* build: add CCM addon var to Nutanix examples

* feat: deploy Nutanix CCM addon

Aligns the method of deploying the CCM with all other addons.

* fixup! build: add scripts to sync Nutanix CCM manifests

* fixup! feat: deploy Nutanix CCM addon

* build: remove unused CRS tooling for Nutanix CCM

The CRS strategy is not supported for the Nutanix CCM,
removing it until we actually need it.
@dkoshkin
Copy link
Collaborator Author

Closing in-favor of nutanix-cloud-native#500

@dkoshkin dkoshkin closed this Apr 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants